<!--
  Copyright JS Foundation and other contributors, http://js.foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<script type="text/html" data-help-name="http in">
    <p>Erstellung eines HTTP-Endpunktes zur Erzeugung von Web-Diensten.</p>
    <h3>Ausgangsdaten</h3>
    <dl class="message-properties">
        <dt>payload</dt>
        <dd>Für eine GET-Anforderung enthält es ein Objekt aller Abfrage-Parameter (query string parameters).
            Ansonsten enthält es den Hauptteil (Body) der HTTP-Anforderung.</dd>
        <dt>req <span class="property-type">object</span></dt>
        <dd>HTTP Anforderungsobjekt.<br/>
            Es enthält mehrere Eigenschaften, die Informationen zu der Anforderung bereitstellen.
            <ul>
                <li><code>body</code>: Hauptteil der eingehenden Anforderung. Das Format hängt von der Anforderung ab.</li>
                <li><code>headers</code>: Objekt mit HTTP-Request-Header</li>
                <li><code>query</code>: Objekt mit Anfrage-Parametern (query string parameters)</li>
                <li><code>params</code>: Objekt mit den Routing-Parametern</li>
                <li><code>cookies</code>: Objekt mit den Cookies der Anfrage</li>
                <li><code>files</code>: Objekt mit allen Dateien, die mit der POST-Anforderung gesendet wurden, sofern im Node aktiviert</li>
            </ul>
        </dd>
        <dt>res <span class="property-type">object</span></dt>
        <dd>HTTP-Antwortobjekt.<br/>
            Diese Eigenschaft sollte nicht direkt verwendet werden.
            Im http&nbsp;response-Node ist dokumentiert, wie auf eine Anforderung reagiert wird.
            Diese Eigenschaft muss an der Nachricht angehängt bleiben, die an den Antwort-Node übergeben wird.</dd>
    </dl>
    <h3>Details</h3>
    <p>Der Node ist auf dem eingestellten Pfad für Anforderungen eines bestimmten Typs empfangsbereit.
       Der Pfad kann vollständig angegeben werden, z.B. <code>/user</code> oder benannte Parameter beinhalten,
       die einen beliebigen Wert akzeptieren, z.B. <code>/user/:name</code>.
       Wenn benannte Parameter verwendet werden, kann auf ihren aktuellen Wert über <code>msg.req.params</code>
       zugegriffen werden.</p>
    <p>Für Anforderungen, die einen Hauptteil (Body) enthalten, wie z.B. POST oder PUT, wird der Inhalt der
       Anforderung über <code>msg.payload</code> verfügbar gemacht.</p>
    <p>Wenn der Inhaltstyp der Anforderung ermittelt werden kann, wird der Hauptteil als passender Typ analysiert.
       Z.B. <code>application/json</code> wird zu einem JavaScript-Objekt analysiert.</p>
    <p><b>Hinweis</b>: Dieser Node sendet keine Antwort an die Anforderung.
       Der Flow muss einen http&nbsp;response-Node enthalten,
       um die Anforderung zu vervollständigen.</p>
</script>

<script type="text/html" data-help-name="http response">
    <p>Senden von Antworten auf Anforderungen, die von einem http&nbsp;in-Node empfangen wurden.</p>
    <h3>Eingangsdaten</h3>
    <dl class="message-properties">
        <dt>payload <span class="property-type">string</span></dt>
        <dd>Hauptteil (Body) der Antwort.</dd>
        <dt class="optional">statusCode <span class="property-type">number</span></dt>
        <dd>Wenn gesetzt, wird diese als Antwort-Statuscode verwendet. Standardwert: 200.</dd>
        <dt class="optional">headers <span class="property-type">object</span></dt>
        <dd>Wenn gesetzt, enthält es die HTTP-Header für die Antwort.</dd>
        <dt class="optional">cookies <span class="property-type">object</span></dt>
        <dd>Wenn gesetzt, kann es zum Setzen oder Löschen von Cookies verwendet werden.</dd>
    </dl>
    <h3>Details</h3>
    <p>Der <code>statusCode</code> und die <code>headers</code> können auch innerhalb des Node angegeben werden.
       Wenn eine Eigenschaft innerhalb des Nodes angegeben ist,
       kann sie nicht durch die entsprechende Nachrichteneigenschaft überschrieben werden.</p>
    <h4><b>Cookie-Behandlung</b></h4>
    <p>Die <code>cookies</code>-Eigenschaft muss ein Objekt mit Name/Wert-Paaren sein.
       Bei dem Wert kann es sich entweder um eine Zeichenfolge (string) zur Festlegung des Cookies mit Standardwerten handeln
       oder es kann ein Objekt mit Optionen sein.</p>
    <p>Im folgenden Beispiel werden zwei Cookies festgelegt - einer mit dem Namen <code>name</code> und dem
       Wert <code>nick</code> und der andere <code>session</code> mit dem Wert
       <code>1234</code> und einer festgelegten Ablaufzeit von 15 Minuten.</p>
       <pre>
msg.cookies = {
    name: 'nick',
    session: {
        value: '1234',
        maxAge: 900000
    }
}</pre>
    <p>Die gültigen Optionen sind:</p>
    <ul>
        <li><code>domain</code>: Domänenname für das Cookie, angegeben als Zeichenfolge (string)</li>
        <li><code>expires</code>: Ablaufzeit in GMT. Wenn nicht vorgeben oder Null (0), wird ein Sitzungscookie erstellt.</li>
        <li><code>maxAge</code>: Ablaufzeit in Bezug auf die aktuelle Zeit in Millisekunden, angegeben als Zeichenfolge (string)</li>
        <li><code>path</code>: Pfad für das Cookie. Standardwert: / (Schrägstrich), angegeben als Zeichenfolge (string)</li>
        <li><code>value</code>: Wert, der für das Cookie verwendet werden soll, angegeben als Zeichenfolge (string)</li>
    </ul>
    <p>Um ein Cookie zu löschen, ist sein <code>value</code> auf <code>null</code> zu setzen.</p>
</script>
